package com.yunlong.service;

import com.yunlong.dto.*;
import com.yunlong.form.*;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;

/**
 * @author guorui
 */
public interface ManagerService {
    /**
     * 部门管理页面展示该部门所有用户
//     * @param page 前端传的查询页数
     * @return List<AllRegistersDto>
     */
    List allUsers();
    /**
     * 给超级管理员展示所有管理员
//     * @param page 前端传的查询页数
     *             Integer page
     * @return List<AllRegistersDto>
     */
    List allManagers();
    /**
     * 管理员新增用户（后台管理系统）
     * @param userRegisterForm
     * @return MessageSuccessDto
     */
    String userRegister(UserRegisterForm userRegisterForm);
//    /**
//     * 管理员批量新增用户
//     */
//    MessageSuccessDto usersRegister(MultipartFile file);
    /**
     * 管理员批量导入用户信息文件
     */
    MessageSuccessDto uploadUsersFile(InputStream inputStream);
//    MessageSuccessDto uploadUsersFile(MultipartFile file);
    /**
     * 超级管理员新增管理员（后台管理系统）
     * @param managerRegisterForm
     * @return MessageSuccessDto
     */
    String managerRegister(ManagerRegisterForm managerRegisterForm);
    /**
     * 超级管理员删除管理员（后台管理系统）
     * @param managerIdForm
     * @return MessageSuccessDto
     */
    String managerDeleted(ManagerIdForm managerIdForm);
    /**
     *管理员删除用户
     * @param deletedUsers
     * @return MessageSuccessDto
     */
    String deletedUsers(UserApprovalForm deletedUsers);
    /**
     * 超级管理员登录
     * @param managerLoginForm
     * @return LoginSuccessDto
     */
    LoginSuccessDto managerLogin(ManagerLoginForm managerLoginForm);
    /**
     * 管理员激活用户账号
     */
    String approvalRegister(UserApprovalForm userApprovalForm);
    /**
     * 管理员冻结用户账号
     */
    String rejectRegister(UserApprovalForm userRejectForm);
    /**
     * 管理员退出登录
     */
    String logOut(String managerId);
    /**
     * 管理员按学号或姓名查询学员
     */
    List<getUserDto> selectUser(String userInfo);

    
}
